package com.turing.post.report.util;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 帐户子系统机构日结表Dao接口
 * 
 * @author yxb
 * 
 */
@Remote
@Local
public interface AccSysBranchDaySettDao {

	/**
	 * 插入对象
	 * 
	 * @param asbcds
	 */
	public void insert(AccSysBranchDaySett asbcds)
			throws PCPSApplicationException;

	/**
	 * 根据主键查找
	 * 
	 * @param asbcds
	 * @return
	 */
	public AccSysBranchDaySett getAccSysBranchDaySettByKey(
			AccSysBranchDaySett asbcds);

	/**
	 * 删除某发卡商某日某销售机构所有的销售机构日结数据
	 * 
	 * @param issueCompanyNo
	 *            发卡商号
	 * @param tranDate
	 *            帐务日期
	 * @param saleBranchNo
	 *            销售分支机构号
	 */
	public void removeAllAccSysBranchDaySettByTranDate(String issueCompanyNo,
			Date tranDate, String saleBranchNo);

	/**
	 * 根据发卡商号、日期、销售机构号检索小于该日期的最大日期
	 * 
	 * @param issueCompanyNo
	 *            发卡商号
	 * @param tranDate
	 *            帐务日期
	 * @param saleBranchNo
	 *            销售分支机构号
	 * @return
	 */
	public Date getMaxTranDate(String issueCompanyNo, Date tranDate,
			String saleBranchNo);

	/**
	 * 根据发卡商号及日期检索所有销售机构日结数据列表
	 * 
	 * @param issueCompanyNo
	 * @param tranDate
	 * @return
	 */
	public List<AccSysBranchDaySett> getAllAccSysBranchDaySettByTranDate(
			String issueCompanyNo, Date tranDate);

	/**
	 * 卡-8： XX寄卡余额变动情况表
	 * @param webInput
	 * @param saleBranchNo
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public List<Object[]> getAccSysBranchDaySettReportByCondition(PCPSWebInput webInput,
			String saleBranchNo, String startDate, String endDate);
}
